// pages/addressList/editAddress/index.js
Page({
    data: {
        addressId: '', // 地址ID
        address: {}, // 地址详情
        region: [], // 省市区选择结果
        regionCode: [], // 省市区选择结果
        regionData: [], // 省市区数据
        isDefault: false, // 是否设为默认地址
        isSubmitting: false // 提交中状态
    },

    onLoad(options) {
        // 获取地址ID
        const addressId = options.addressId;
        if (!addressId) {
            wx.showToast({
                title: '参数错误',
                icon: 'none'
            });
            setTimeout(() => {
                wx.navigateBack();
            }, 1500);
            return;
        }

        this.setData({
            addressId: addressId
        });

        // 加载省市区数据
        this.loadRegionData();

        // 获取地址详情
        this.getAddressDetail();
    },
    // 获取地址详情
    getAddressDetail() {
        wx.showLoading({
            title: '加载中...',
        });

        // 调用云函数获取地址详情
        wx.cloud.callFunction({
            name: 'address',
            data: {
                action: 'detail',
                userId: wx.getStorageSync('userInfo')._id,
                addressId: this.data.addressId
            }
        }).then(res => {
            wx.hideLoading();
            console.log(res);
            if (res.result.success) {
                const address = res.result.address;

                // 设置省市区选择值
                const regionCode = [
                    address.province,
                    address.city,
                    address.district
                ];
                const region = [
                    address.provinceName,
                    address.cityName,
                    address.districtName
                ];
                this.setData({
                    address: address,
                    region: region,
                    regionCode: regionCode,
                    isDefault: address.isDefault
                });
            } else {
                wx.showToast({
                    title: res.result.message || '获取地址失败',
                    icon: 'none'
                });
                setTimeout(() => {
                    wx.navigateBack();
                }, 1500);
            }
        }).catch(err => {
            wx.hideLoading();
            console.error('获取地址详情失败:', err);
            wx.showToast({
                title: '获取地址失败，请重试',
                icon: 'none'
            });
        });
    },
    // 加载省市区数据
    loadRegionData() {
        this.setData({
            regionData: [
                '北京市', '上海市', '广东省', '浙江省', '江苏省', '山东省', '四川省', '湖南省', '湖北省', '河南省',
                '河北省', '陕西省', '山西省', '福建省', '安徽省', '辽宁省', '江西省', '云南省', '吉林省', '黑龙江省',
                '贵州省', '甘肃省', '海南省', '内蒙古自治区', '广西壮族自治区', '西藏自治区', '宁夏回族自治区', '新疆维吾尔自治区',
                '香港特别行政区', '澳门特别行政区'
            ]
        });
    },

    // 省市区选择变化
    onRegionChange(e) {
        console.log(e);
        this.setData({
            region: e.detail.value,
            regionCode: e.detail.code,
        });
    },

    // 提交地址
    submitAddress(e) {
        console.log(e);
        console.log(this.data.isDefault);
        const formData = e.detail.value;

        // 表单验证
        if (!formData.receiverName) {
            wx.showToast({
                title: '请输入收货人姓名',
                icon: 'none'
            });
            return;
        }

        if (!formData.receiverPhone) {
            wx.showToast({
                title: '请输入联系电话',
                icon: 'none'
            });
            return;
        }

        if (formData.receiverPhone.length !== 11) {
            wx.showToast({
                title: '请输入正确的手机号码',
                icon: 'none'
            });
            return;
        }

        if (this.data.region.length < 3) {
            wx.showToast({
                title: '请选择所在地区',
                icon: 'none'
            });
            return;
        }

        if (!formData.detailAddress) {
            wx.showToast({
                title: '请输入详细地址',
                icon: 'none'
            });
            return;
        }

        // 设置提交中状态
        this.setData({
            isSubmitting: true
        });

        // 准备地址数据
        const addressData = {
            receiverName: formData.receiverName,
            receiverPhone: formData.receiverPhone,
            provinceName: this.data.region[0],
            province: this.data.regionCode[0],
            cityName: this.data.region[1],
            city: this.data.regionCode[1],
            districtName: this.data.region[2],
            district: this.data.regionCode[2],
            detailAddress: formData.detailAddress,
            isDefault: this.data.isDefault
        };

        // 调用云函数添加地址
        wx.cloud.callFunction({
            name: 'address',
            data: {
                action: 'update',
                userId: wx.getStorageSync('userInfo')._id,
                addressId: this.data.addressId,
                addressData: addressData
            }
        }).then(res => {
            this.setData({
                isSubmitting: false
            });

            if (res.result.success) {
                wx.showToast({
                    title: '添加地址成功',
                    icon: 'success'
                });

                // 返回上一页
                setTimeout(() => {
                    wx.navigateBack();
                }, 1500);
            } else {
                wx.showToast({
                    title: res.result.message || '添加地址失败',
                    icon: 'none'
                });
            }
        }).catch(err => {
            this.setData({
                isSubmitting: false
            });
            console.error('添加地址失败:', err);
            wx.showToast({
                title: '添加地址失败，请重试',
                icon: 'none'
            });
        });
    },

    // 切换默认地址
    toggleDefaultAddress(e) {
        console.log(e);
        this.setData({
            isDefault: !this.data.isDefault
        });
    },


});